/** 
* Projet AP5 - Agenda PDA
* PanelError.java
*/

package pda.view;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JButton;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
* Classe de creation du message d'erreur.
*/

public class PanelError extends Exception implements ActionListener {

//##########################################################################################################
//										Attributs
//##########################################################################################################

	/** ID de numero de  version non modifiable */
	private final static long serialVersionUID = 42;
	/**  */
	private AgendaView laVue;
	/**  */
	private ActivityPanel lePanel;
	/**  */
	private JPanel error;
	
//##########################################################################################################
//										Constructeur 
//##########################################################################################################

	/**
	* Constructeur de la classe
	* @param vue Objet de AgendaView
	* @param panel Objet de ActivityPanel
	*/
	public PanelError(AgendaView vue, ActivityPanel panel){
		laVue = vue;
		lePanel = panel;
	}



//##########################################################################################################
//										Methodes 
//##########################################################################################################

	/**
	*ceci est pour cacher le panneau d'erreur lors de la validation
	*/
	public void actionPerformed(ActionEvent e ) {
		laVue.getMainPanel().remove(error);
		laVue.getMainPanel().add(lePanel.getActivityPanel(),BorderLayout.CENTER);
		laVue.refresh();
	}
	
	/**
	*c'est la methode principale de PanelError, elle affiche l'origine de l'erreur 
	*dans un nouveau panel et laisse l'utilisateur valider pour retourner a son erreur
	*/
	public void disp(String type){
		//declaration des elements utilise
		JLabel message;
		JButton validate;
	
		//initialisation
		error = new JPanel( new BorderLayout());
		JPanel btnPanel = new JPanel();
		JPanel imagePanel = new JPanel();
		JLabel icone = new JLabel(new ImageIcon("data/img/agenda/erreur.png"));
		JLabel attention = new JLabel("Attention : il y a une erreur !");
		validate = new JButton("Ok");
		validate.addActionListener(this);
		message = new JLabel("Il y a une erreur");
		if (type.equals("improbable") )
			message = new JLabel("<html><b>L'heure donn&eacute;e est impossible </b> <br/> Veuillez recommencer <br/><br/>Merci. </html>");
		if (type.equals("incomplet"))
			message.setText("<html><b>Veuillez remplir les champs :</b> <br/> motif, heure de d&eacute;but et heure de fin <br/><br/>Merci. </html>");
		if (type.equals("superposition"))
			message.setText("<html><b>Il existe d&eacute;j&agrave; un &eacute;v&eacute;nement &agrave; cette date et &agrave; l'heure indiqu&eacute;e</b> <br/> </html>");
		
		message.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		//mise en place
		laVue.getMainPanel().remove(lePanel.getActivityPanel());
		error.add(imagePanel, BorderLayout.NORTH);
		error.add(message, BorderLayout.CENTER);
		error.add(btnPanel, BorderLayout.SOUTH);
		btnPanel.add(validate);
		imagePanel.add(icone);
		imagePanel.add(attention);
		laVue.getMainPanel().add(error, 	BorderLayout.CENTER);
	}

}